//引入express
const express = require('express');
const path = require('path')
//静态资源中间件，处理程序之前，在中间件中对传入的请求体进行解析（response body）
/* 
静态资源文件通俗的可以理解成对于不同的用户来说，
内容都不会变化的文件。
比如不管是张三李四还是王五访问百度，
他们所接收到的看到的图片、css文件和前端javascript文件都是一样的，
我们称这类文件为静态资源文件。
*/
const bodyParser = require('body-parser');
//自定义
const adminRouter = require('./routes/admin');
const cateRouter = require('./routes/cate');
const itemRouter = require('./routes/item');
const uploadRouter = require('./routes/upload');
const upload = require('./utils/upload');
// mongoose 连接数据库
require('./model/connect');
//使用express框架，绑定之后需要用这个对象去创建一个web服务器
const app = express();
//解析urlencoded和json格式
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
/* 
设置静态文件标签，
app.use(express.static(__dirname + '/public'))是将所有请求，
先交给express.static(__dirname + '/public')来处理一下，
虽然我们暂时不知道express.static()的处理细节，
但是这不影响我们做出一些推测，最起码我们可以知道，
express.static()的返回值肯定是一个函数。
你提供给 express.static 函数的路径是一个相对node进程启动位置的相对路径。
如果你在其他的文件夹中启动express app，更稳妥的方式是使用静态资源文件夹的绝对路径：
*/
app.use('/static', express.static(path.join(__dirname,'public')));
//配置页面文件（ejs）的根目录，访问./index相当于views/index.ejs
app.set('views', path.join(__dirname,'views'));
app.set('view engine', 'ejs');
//使用路由
app.use(adminRouter);
app.use(cateRouter);
app.use(itemRouter);
app.use(uploadRouter);
//监听端口号，在创建完成之后需要映射到一个端口上去发挥作用
app.listen(3000, ()=>{ console.log('start at port 3000') })